bitkeeper revision 1.688 (4011789fups9-ci9C6L2ART_UCuhpA)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Fri, 23 Jan 2004 19:40:15 +0000 (19:40 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Fri, 23 Jan 2004 19:40:15 +0000 (19:40 +0000)
xl_vbd.c:
  Fix VBD setup in XL.

xenolinux-2.4.24-sparse/arch/xeno/drivers/block/xl_vbd.c

index 53333514580b891da1e9b11783adb55570e6178b..a927df86bc54ea87aaa39f60da7551488f72ea96 100644 (file)
@@ -456,10 +456,11 @@ void xlvbd_update_vbds(void)
         }
         else
         {
-            if ( xlvbd_init_device(&new_info[j]) == 0 )
-                memcpy(&merged_info[k++], &new_info[j], sizeof(xen_disk_t));
-            else
+            if ( (memcmp(&old_info[i], &new_info[j], sizeof(xen_disk_t)) == 0) ||
+                 (xlvbd_remove_device(old_info[i].device) == 0) )
                 memcpy(&merged_info[k++], &old_info[i], sizeof(xen_disk_t));
+            else if ( xlvbd_init_device(&new_info[j]) == 0 )
+                memcpy(&merged_info[k++], &new_info[j], sizeof(xen_disk_t));
             i++; j++;
         }
     }